package Data_Structure.Sort;

import java.util.Arrays;
import java.util.Random;

/**
 * @className: Test
 * @author: 芃
 * @description: 排序代码测试类
 * @date: 2023/8/20 17:40
 */
//※稳定性：针对一个数组，排序前后，相等的元素先后顺序不发生改变，即为稳定的，否则就是不稳定的
//一个稳定的排序算法，可以实现为不稳定的，但是一个不稳定的排序算法，必然不可能实现为稳定的
//稳定的排序：冒泡、插入、归并
public class Test {
    public static void main(String[] args) {
        Random random = new Random();
        int[] arr = new int[10];
        for (int i = 0; i < 10; i++) {
            arr[i] = random.nextInt(10) + 1;
        }
//        int[] arr1 = new int[100];
//        for (int i = 0; i < 100; i++) {
//            arr1[i] = random.nextInt(100) + 1;
//        }
        System.out.print("排序前：");
        System.out.println(Arrays.toString(arr));
//        System.out.println(Arrays.toString(arr1));
        //调用自定义的7中排序算法
        //冒泡排序
        //BubbleSort.bubbleSort(arr);
        //直接插入排序
        //InsertSort.insertSort(arr);
        //堆排序
        //HeapSort.heapSort(arr);
        //归并排序
        //MergeSort.mergeSort2(arr);
        //HeapSort.heapSort(arr);
        //HeapSort.heapSort(arr1);
        //int[] ret = MergeSort.merge(arr,arr1);
        //快速排序-简称快排
        //QuickSort.quickSort2(arr);
        //选择排序
        //SelectSort.selectSort(arr);
        //希尔排序
        //ShellSort.shellSort(arr);
        //计数排序
        CountSort.countSort(arr);
        System.out.print("排序后：");
        System.out.println(Arrays.toString(arr));
    }
}
